<?php
/**
 * 类 PDO 接口 
 *
 * @filesource MagicDB.class.php
 * @package MagicDB
 * @subpackage 
 * @version $id: 0.2, utf8, Sun Dec 20 16:02:29 CST 2009
 * @author LD King <kldscs[at]gmail.com>
 * @copyright Copyleft (D.) 2007 - 2009 MiFunny China Inc.
 * @link http://mifunny.info/
 * @example 
 *   
 */
interface MagicDB{
    /**
     * 错误代码
     *
     * @return mixed
     */
    public function errorCode();

    /** 
     * 错误性息
     *
     * @return array
     */
    public function errorInfo();

    /**
     * 执行SQL语句
     *
     * @param string $statement
     *
     * @return int
     */
    public function exec($statement);

    /**
     * 执行SQL语句,返回结果集
     *
     * @param string $statement
     *
     * @return MagicStatement
     */
    public function query($statement);

    /**
     * 得到最近一次insert的ID
     *
     * @return string
     */
    public function lastInsertId();
    
    /**
     * 去除SQL语句中不合法的字符
     *
     * @param string $string
     *
     * @return string
     */
    public function quote($string);

    /**
     * 开始事务
     */
    public function beginTransaction();

    /**
     * 提交事务
     */
    public function commit();

    /**
     * 回滚事务
     */
    public function rollBack();

}//END interface MagicDB

/**
 * MagicDB 结果集
 *   要不要 implements Traversable ?
 */
interface MagicStatement{

    /**
     * 获得单行结果
     *
     * @return mixed
     */
    public function fetch();

    /**
     * 获取所有结果
     *
     * @return array
     */
    public function fetchAll();

    /**
     * 结果计数
     *
     * @return int
     */
    public function rowCount();

    /**
     * 下一个结果集
     *
     * @return bool
     */
    public function nextRowset();

    /**
     * 关闭结果集
     *
     * @return bool
     */
    public function closeCursor();
}//END interface MagicStatement
?>
